shell_integration/macOS/FileProviderUIExt: Enforce item metadata being valid when...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 24 Jan 2025 04:14:30 +0000 (12:14 +0800)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 10 Feb 2025 08:16:37 +0000 (09:16 +0100)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift

index 4fcea065221969b03de850011c0eb4ce6a9828e8..d5e8ae58a36c579302ee6daff575c0cb430c4dff 100644 (file)
@@ -30,7 +30,6 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele
         }
     }
     var capabilities: Capabilities?
-    var itemMetadata: NKFile?
 
     private(set) var itemURL: URL?
     private(set) var itemServerRelativePath: String?
@@ -117,10 +116,13 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele
                 presentError("Account data is unavailable, cannot reload data!")
                 return
             }
-            itemMetadata = await fetchItemMetadata(
+            guard let itemMetadata = await fetchItemMetadata(
                 itemRelativePath: serverPathString, account: account, kit: kit
-            )
-            guard itemMetadata?.permissions.contains("R") == true else {
+            ) else {
+                presentError("Unable to retrieve file metadata...")
+                return
+            }
+            guard itemMetadata.permissions.contains("R") == true else {
                 presentError("This file cannot be shared.")
                 return
             }